To improve performance and reliability, redundant arrays of inexpensive disks (RAID) apparatuses of a distributed-cache-memory storage system adopt a redundant configuration of including a plurality of control modules for controlling input of data in a storage and output of data from the storage. Each of the control modules executes processing for reading data from a logical volume and writing data in the logical volume.
To improve the reliability, such RAID apparatuses have a remote copy function, called as advanced copy, which ensures the order.
FIG. 34 is a diagram illustrating RAID apparatuses each having the order-ensuring remote copy function. More specifically, FIG. 34 illustrates a storage system including RAID apparatuses 2801 and 2802. The RAID apparatus 2801 includes control modules #00 and #01, whereas the RAID apparatus 2802 includes control modules #10 and #11.
Each of the control modules includes a recording buffer having a buffer and a buffer index table (BIT) storage unit, a buffer set information storage unit for storing buffer set information, and a storage medium for storing data.
The buffer is divided into a plurality of areas of a predetermined size. Each of the divided areas is assigned with a buffer ID and temporarily stores data stored or to be stored on the storage medium. The BIT storage unit stores BIT, i.e., information including a location of data stored in the buffer, such as a buffer ID illustrated in FIG. 34.
“(0000)” in the buffer illustrated in FIG. 34 represents buffer data stored in a buffer area having a buffer ID “0000”, whereas “0000” written in the BIT storage unit represents the buffer ID.
The buffer set information storage unit stores information on a buffer set. The buffer set indicates a combination of buffer data stored in a buffer of one control module and buffer data stored in a buffer of another control module, e.g., a combination of buffer data (0000) and another buffer data (0100) enclosed by a horizontally long dotted line in the copy-source RAID apparatus 2801.
The buffer set information includes information associating buffer data with a buffer of the copy-destination RAID apparatus 2802 storing the buffer data. For example, in the buffer set information storage unit of the control module #00, buffer data stored in a buffer area having a buffer ID “0000” is associated with a buffer area having a buffer ID “1000” of the copy-destination RAID apparatus 2802 storing the buffer data.
In the foregoing configuration, upon receiving a write I/O instruction from a host computer, each of the control modules #00 and #01 stores “write data” in the storage medium in accordance with the write I/O instruction (see (a)).
At the same time, each of the control modules #00 and #01 transfers the write data to the buffer and stores the data in the buffer (see (b)). At this time, the write data is managed in units of buffer sets.
Upon completing writing of the write data in the buffer, each of the control modules #00 and #01 starts transferring the write data in units of buffer sets (see (c)). That is, the control modules #00 and #01 start remote copy.
The write data transferred from the copy-source RAID apparatus 2801 in the remote copy is stored in a buffer of each of the control modules #10 and #11 of the copy-destination RAID apparatus 2802 in accordance with the buffer set information. Each of the control modules #10 and #11 then reflects the write data stored in the buffer in the storage medium (see (d)).
After the completion of the foregoing processing, each of the control modules of the copy-source RAID apparatus 2801 and the copy-destination RAID apparatus 2802 frees the buffer.
As described above, the data is collectively transmitted using the recording buffer and the buffer sets are collectively controlled. In the copy-destination RAID apparatus 2802 on the other hand, the data is stored on the storage media in units of buffer sets. In this way, the order is ensured.
Additionally, as described above, since write data waiting to be transmitted because of communication speed is accumulated in the advanced copy, a larger buffer is needed for lower communication speed. A memory (hereinafter, referred to as a buffer memory) is used as the buffer because the buffer desirably has high speed. However, mounting a memory of a large capacity is difficult because of issues, such as cost. Thus, when an amount of copy data waiting to be transmitted exceeds the capacity of the buffer memory, a disk (hereinafter, referred to as a buffer disk) may be used for temporarily evacuating (writing back) the copy data. The data stored in the buffer disk is managed based on generations to ensure the order. As soon as a space becomes available in the buffer memory, the data stored in the buffer disk is written in the buffer memory from the oldest generation (staging).
Japanese Laid-open Patent Publication No. 2006-260292 is an example of related art.